package com.bdqn.mapper;

import com.bdqn.ConfigManager;

import java.io.InputStream;
import java.util.Properties;

/**
 * 读取配置问价的工具类-单利模式
 */
public class Single {
    private static Single single;
    private static Properties properties;
    // 私有构造方法，项目运行期间，仅执行一次
    private Single() {
        String configFile = "database.properties";
        properties = new Properties();
        // 得到当前类的类加载器并将配置文件加载到输入流中
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
        try {
            // 将输入流中的数据加载到properties中
            properties.load(is);
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 定义一个静态内部类，试讲对象的创建工作交给静态内部类
    private static class SingleHelper {
        public static final Single INSTANCE = new Single();
    }

    // 全局访问点
    public static Single getInstance() {
        single = SingleHelper.INSTANCE;
        return single;
    }

    // getValue() 方法可以根据传入的key获取database.properties文件中对应的value值
    public String getValue(String key) {
        return properties.getProperty(key);
    }

    public static Single test() {
        return single;
    }
}
